package com.ldu.houserent.controller.front;

import com.ldu.houserent.common.base.BaseController;
import com.ldu.houserent.common.constant.Constant;
import com.ldu.houserent.common.dto.JsonResult;
import com.ldu.houserent.common.util.RegexUtil;
import com.ldu.houserent.entity.User;
import com.ldu.houserent.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.Date;

/*
    注册控制器
 */
@Controller
@RequestMapping("/register")
public class RegisterController extends BaseController {

    @Autowired
    private UserService userService;    //实例化UserService

    /*
        注册提交
     */
    @RequestMapping(value = "/submit",method = RequestMethod.POST)
    @ResponseBody               //返回一个Json结构，而不是一个地址
    public JsonResult registerSubmit(User user, HttpSession session) {   //User(userName=zhangsan, userDisplayName=张三, phone=13014585365, email=1234@qq.com, userPass=123456, idCard=null, userAvatar=null, userDesc=null, status=0, role=customer, sex=null, hobby=null, job=null)
        //判断user是否为空
        if (user==null){    //用户信息为空，没有传一条信息
            return JsonResult.error("非法访问");
        }
        User user1=userService.findByUserName(user.getUserName());
        if (user1!=null){   //在数据库中查到了该用户名，说明该用户名已存在
            return JsonResult.error("用户已存在");
        }
        if(user.getUserPass()==null || user.getUserPass().length()<6){
            return JsonResult.error("密码不能为空且不少于6位");
        }
        if(!RegexUtil.isMobile(user.getPhone())){     //如果不是手机号格式
            return JsonResult.error("手机号格式输入有误");
        }
        if(!RegexUtil.isEmail(user.getEmail())){
            return JsonResult.error("电子邮箱格式输入有误");
        }

        user.setIdCard("还没有填写");
        user.setUserAvatar("/assets/img/default-avatar.jpg");   //设置默认头像
        user.setUserDesc("还没有填写");
        user.setSex("保密");
        user.setHobby("还没有填写");
        user.setJob("还没有填写");
        user.setCreateTime(new Date());     //设置为当前时间
        try {
            userService.insert(user);           //将该条记录添加到数据库中
        }catch (Exception e){
            e.printStackTrace();
            return JsonResult.error("注册失败");
        }
        session.setAttribute(Constant.SESSION_USER_KEY,user);       //把用户user信息放到session中，实现自动登录
        return JsonResult.success("注册成功");
    }//registerSubmit


}
